# 导入正则模块
import re

# 字符匹配
rs = re.findall('abc', 'abcdefg')  # 从目标字符串中匹配模板 abc
rs = re.findall('a.c', 'adc')  # .号代表一个任意字符,模板若想表示.则需要转义 /.
rs = re.findall('a[bc]d', 'abd')  # 字符集,[bc]即匹配的字符可以是b或c(abd,acd)
rs = re.findall('共\d+页','一共13页')

# 预定义的字符集
rs = re.findall('\d', '123')  # /d 匹配一个数字,'123'返回了列表['1', '2', '3']
rs = re.findall('\w', 'AZ123_')  # /w 匹配一个字母,'AZ123_'返回了列表['A', 'Z', '1', '2', '3', '_'],可以匹配中文,但是特殊字符不匹配

# 数量词 * + ？ {m}
rs = re.findall('\d*','123') # *号匹配前一个字符0/无限次,返回['123', ''],因为允许零次所以包含空串
rs = re.findall('a\d*','a123') # *号匹配前一个字符0/无限次
rs = re.findall('a\d+','a123') # +号匹配前一个字符1/无限次
rs = re.findall('a\d?','a5') # ?号匹配前一个字符0/1次
rs = re.findall('a\d{2}','a38') # {m}号匹配前一个字符 m 次

print(rs)